<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="zh" xml:lang="zh" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<head>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Guideline: 业务用例模型中的活动图</title>
<meta name="uma.type" content="Guideline">
<meta name="uma.name" content="activity_diagram_in_the_business_use-case_model">
<meta name="uma.presentationName" content="业务用例模型中的活动图">
<meta name="element_type" content="other">
<meta name="filetype" content="description">
<meta name="role" content="">
<link rel="StyleSheet" href="./../../../css/default.css" type="text/css">
<script src="./../../../scripts/ContentPageResource.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageSubSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageToolbar.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/contentPage.js" type="text/javascript" language="JavaScript"></script><script type="text/javascript" language="JavaScript">
					var backPath = './../../../';
					var imgPath = './../../../images/';
					var nodeInfo=null;
					contentPage.preload(imgPath, backPath, nodeInfo,  '', false, false, false);
				</script>
</head>
<body>
<div id="breadcrumbs"></div>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td valign="top"><a name="Top"></a>
<div id="page-guid" value="1.4038197112599951E-306"></div>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr>
<td class="pageTitle" nowrap="true">Guideline: 业务用例模型中的活动图</td><td width="100%">
<div align="right" id="contentPageToolbar"></div>
</td><td width="100%" class="expandCollapseLink" align="right"><a name="mainIndex" href="./../../../index.htm"></a><script language="JavaScript" type="text/javascript" src="./../../../scripts/treebrowser.js"></script></td>
</tr>
</table>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="pageTitleSeparator"><img src="./../../../images/shim.gif" alt="" title="" height="1"></td>
</tr>
</table>
<div class="overview">
<table width="97%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="50"><img src="./../../../images/guidance.gif" alt="" title=""></td><td>
<table class="overviewTable" border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="top">活动图可用来表示业务用例的流程，以显示完成业务目标的任务的顺序。本指南描述活动图的 UML 表示法以及如何使用它。</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Relationships</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<th class="sectionTableHeading" scope="row">Related Elements</th><td class="sectionTableCell">
<ul>
<li>
<a href="./../../../rup_bm/tasks/detail_business_use_case_FDA3D473.html" guid="{0DD91699-9FBA-420D-8E2B-C0945557A791}">详细描述业务用例 </a>
</li>
<li>
<a href="./../../../rup_bm/workproducts/rup_business_use_case_14F1BAF2.html" guid="{587A849E-B5F2-4B17-8C7F-1C59B0F5612D}">业务用例</a>
</li>
</ul>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Main Description</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td class="sectionTableSingleCell"><a id="Top" name="Top"></a><a key="业务用例模型（business use-case model）" text="活动图指南" name="XE_business_use-case_model__activity_diagrams_guidelines_for" id="XE_business_use-case_model__activity_diagrams_guidelines_for" class="index"></a> 
<h3>
    <a id="Explanation" name="Explanation">说明</a>
</h3>
<p>
    业务用例的工作流程描述了该业务必须做什么来提供所服务的业务参与者所需的价值。业务用例由一系列任务组成，这些任务一起为业务参与者生成某些结果。该工作流程通常包括一个基本流以及一个或多个备选流。工作流程的结构在活动图的帮助下以图形方式描述。
</p>
<p>
    工作流程的活动图探索完成业务目标的任务的顺序。任务可以是手动或自动的，它完成一个工作单元。&nbsp;
</p>
<p>
    活动图是状态表图的特殊情况，其所有或大部分状态都是活动状态，其中所有或大部分的转移由源状态中的操作完成而触发。
</p>
<h3>
    <a id="Basic Activity Diagrams" name="Basic Activity Diagrams">基本活动图</a>
</h3>
<p>
    活动图可以具有以下元素：
</p>
<ul>
    <li>
        <a key="活动状态（处于活动图中）（activity states）" text="业务用例模型中的活动状态" name="XE_activity_states_(in_activity_diagrams)__in_business_use-case_model" id="XE_activity_states_(in_activity_diagrams)__in_business_use-case_model" class="index"></a>表示工作流程中的任务或步骤的性能。
    </li>
    <li>
        <a key="转换（处于活动图中）（transition）" text="业务用例模型中的转换" name="XE_transition_(in_activity_diagrams)__in_business_use-case_model" id="XE_transition_(in_activity_diagrams)__in_business_use-case_model" class="index"></a><b>转移</b>显示活动状态的先后顺序。这种类型的转移可以称为完成转移。它与转移不同：它不需要显式的触发器事件，它通过任务完成（用活动状态表示）来触发。
    </li>
    <li>
        <a key="决策（处于活动图中）（decision）" text="业务用例模型" name="XE_decision_(in_activity_diagrams)__business_use-case_model" id="XE_decision_(in_activity_diagrams)__business_use-case_model" class="index"></a><b>决策</b>，为其定义了一组<a key="警戒条件（处于活动图中）（guard condition）" text="业务用例模型" name="XE_guard_condition_(in_activity_diagrams)__business_use-case_model" id="XE_guard_condition_(in_activity_diagrams)__business_use-case_model" class="index"></a><b>警戒条件</b>。警戒条件控制当某个任务完成时将进行一组备选转移中的哪一个转移。您也可以使用决策图标显示这些线程在何处再次合并。决策和警戒条件允许您在业务用例的工作流程中显示<a key="可选线程（处于活动图中）（alternative threads）" text="业务用例模型" name="XE_alternative_threads_(in_activity_diagrams)__business_use-case_model" id="XE_alternative_threads_(in_activity_diagrams)__business_use-case_model" class="index"></a><b>可选线程</b>。
    </li>
    <li>
        <a key="同步条（处于活动图中）（synchronization bars）" text="业务用例模型" name="XE_synchronization_bars_(in_activity_diagrams)__business_use-case_model" id="XE_synchronization_bars_(in_activity_diagrams)__business_use-case_model" class="index"></a><b>同步条</b>用于显示并行子流程。同步条允许您在业务用例的工作流程中显示<a key="并发线程（处于活动图中）（concurrent threads）" text="业务用例模型" name="XE_concurrent_threads_(in_activity_diagrams)__business_use-case_model" id="XE_concurrent_threads_(in_activity_diagrams)__business_use-case_model" class="index"></a><b>并发线程</b>。
    </li>
</ul>
<p align="center">
    <img height="505" alt="附带文本中描述的图。" src="./../../../rup_bm/guidances/guidelines/resources/md_bact.gif" width="474" />
</p>
<p class="picturetext">
    在业务用例模型“机场检入”中业务用例“个人检入”的活动图
</p>
<h3>
    <a key="活动图（activity diagrams）" text="条件线程" name="XE_activity_diagrams__conditional_threads" id="XE_activity_diagrams__conditional_threads" class="index"></a><a id="Conditional Threads" name="Conditional Threads">条件线程</a>
</h3>
<p>
    警戒条件用于显示一组并发线程中的一个是条件线程。例如，在上一节的“个人检入”示例中，检入的旅客可能是个航空里程酬宾会员。在这种情况下，您需要奖励该旅客航空里程。
</p>
<p align="center">
    <img height="277" alt="附带文本中描述的图。" src="./../../../rup_bm/guidances/guidelines/resources/md_bact4.gif" width="368" />
</p>
<p class="picturetext">
    在业务用例模型“机场检入”中业务用例“个人检入”的活动图
</p>
<h3>
    <a key="活动图（activity diagrams）" text="嵌套图" name="XE_activity_diagrams__nested_diagrams" id="XE_activity_diagrams__nested_diagrams" class="index"></a><a id="Nested Activity Diagrams" name="Nested Activity Diagrams">嵌套活动图</a>
</h3>
<p>
    一个活动状态可能引用显示该活动状态内部结构的另一个活动图。换句话说，您可以有嵌套的活动图。您既可以在活动状态的内部显示该子图，也可以使该活动状态引用另一个图。
</p>
<p align="center">
    <img height="249" alt="附带文本中描述的图。" src="./../../../rup_bm/guidances/guidelines/resources/md_bact5.gif" width="254" />
</p>
<p class="picturetext">
    在活动状态中显示的嵌套活动图
</p>
<p>
    如果您想要在一个图中查看工作流程的所有详细信息，则在活动状态的内部显示子图是很方便的。但是，如果在显示的工作流程中有任何程度的复杂性，则这可能会使图难以阅读。
</p>
<p align="center">
    <img height="190" alt="附带文本中描述的图。" src="./../../../rup_bm/guidances/guidelines/resources/md_bact6.gif" width="261" />
</p>
<p class="picturetext">
    可以选择将子图放在一个独立的图中，并使活动状态引用它
</p>
<p>
    <font size="3">为了简化工作流程图，您也可以选择将子图放在一个独立的图中，并使该子图详细描述的活动状态引用它。</font>
</p>
<h3>
    <a key="活动图（activity diagrams）" text="泳道" name="XE_activity_diagrams__swimlanes" id="XE_activity_diagrams__swimlanes" class="index"></a><a id="Using Swimlanes" name="Using Swimlanes">使用泳道</a>
</h3>
<p>
    活动图可以使用竖实线分割为<b>泳道</b>。每个泳道代表整个工作流程的一部分的职责，由组织的一部分执行。最后，一个泳道可能由一个业务系统实现或业务分析模型中的一组类实现。
</p>
<p>
    泳道的相对排序没有任何语义方面的重要性。每个活动状态被分配到一个泳道，转移可以跨多个泳道。
</p>
<p align="center">
    <img height="397" alt="附带文本中描述的图。" src="./../../../rup_bm/guidances/guidelines/resources/md_bact2.gif" width="220" />
</p>
<p class="picturetext">
    活动图说明代表一般销售流程的业务用例的工作流程。在此示例中，泳道代表组织中的部门。
</p>
<h3>
    <a id="Examples of Use" name="Examples of Use">使用示例</a>
</h3>
<p>
    是活动图还是工作流程的文本描述在前面？这在某种程度上取决于您习惯的工作方式以及您是否善于图形思维。一些人喜欢先在图中直观地勾勒结构，然后以文本开发详细信息。另一些人喜欢先制作活动状态的符号列表，并达成一致意见，然后使用图定义结构。
</p>
<p>
    另一个有效的问题是您是否真正同时需要文本文档和图。活动图方法确实允许您编写每个活动状态的简短描述，这会使工作流程的文本说明过时。此处您需要了解您的受众以及他们期望说明的格式如何。
</p>
<p>
    我们为<a class="elementLinkWithType" href="./../../../rup_bm/guidances/guidelines/business_use_case_2E2587D0.html" guid="1.2631093270419717E-306">Guideline: 业务用例</a>中定义的业务用例“建议书流程”的工作流程提供了一个样本活动图，以说明活动图如何加深您对工作流程的理解。此示例取自一个销售电信网络解决方案（为每个客户单独配置）的组织。
</p>
<p align="center">
    <img height="535" alt="附带文本中描述的图。" src="./../../../rup_bm/guidances/guidelines/resources/md_bact3.gif" width="490" />
</p>
<p class="picturetext">
    业务用例“建议书流程”的活动图
</p>
<blockquote>
    <p>
        名为“初始机会工作”的活动状态包括可以并行进行的三个子步骤。这在一个此活动状态的子图中说明。
    </p>
</blockquote>
<p align="center">
    <img height="273" alt="附带文本中描述的图。" src="./../../../rup_bm/guidances/guidelines/resources/md_bact7.gif" width="387" />
</p>
<p class="picturetext">
    活动状态“初始机会工作”的子图。创建销售计划是可选的，这通过对进入的转移的警戒条件表示。
</p>
<p>
    活动图可以代表相当大的过程（带有子结构）以及相对较小的过程。如果您在使用活动图定义工作流程的结构，请不要尝试向下探索活动图的若干级别以至使用最小的级别。这样做将很可能使这个图或这组图（如果您使用独立的子图）非常难于解释。将目标定在使一个图勾勒出整个工作流程，其中少数几个活动状态可以有子图。
</p><br />
<br /></td>
</tr>
</table>
</div>
<table class="copyright" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="copyright">Copyright &copy; 2008 版权所有 东软集团股份有限公司&nbsp; 联系邮箱:<a href="mailto:tcoe@neusoft.com">tcoe@neusoft.com</a></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
<script type="text/javascript" language="JavaScript">
				contentPage.onload();
			</script>
</html>
